﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//猜数字

////菜单
//void menu()
//{
//	printf("********************\n");
//	printf("*******1.play*******\n");
//	printf("*******0.exit*******\n");
//}
//
////猜数字
//void guess()
//{
//	int r = rand()%100;
//	int num = 0;
//	int i = 0;
//	for (i = 0; i <= 6; i++)
//	{
//		printf("范围1-100\n");
//		printf("请输入你的数:");
//		scanf("%d", &num);
//		if (num > r) 
//		{
//			printf("数字大了！\n");
//		}
//		else if (num < r)
//		{
//			printf("数字小了！\n");
//		}
//		else 
//		{
//			printf("恭喜你猜对了！\n");
//			break;
//		}
//
//	}
//}
//
//int main()
//{
//	srand((unsigned int)time(NULL));
//	int input = 0;
//	do {
//		menu();
//		printf("请输入你的选择:");
//		scanf("%d", &input);
//		switch (input)
//		{
//			case 1:
//				printf("游戏开始！");
//				guess();
//				break;
//			case 0:
//				printf("Bye！");
//				break;
//			default:
//				printf("输入错误！");
//				break;
//		}
//
//	} while (input);
//
//	return 0;
//}

//BC69-空心正方形图案
//int main()
//{
//    int a = 0;
//    while (scanf("%d", &a) != EOF) 
//    { 
//        int i = 0;
//        for (i = 1; i <= a; i++)
//        {
//            if (i == 1 || i == a)
//            {
//                int j = 0;
//                for (j = 1; j <= a; j++)
//                {
//                    printf("* ");
//                }
//                printf("\n");
//
//            }
//            else
//            {
//                int k = 0;
//                for (k = 1; k <= a; k++)
//                {
//                    if (k == 1 || k == a)
//                    {
//                        printf("* ");
//
//                    }
//                    else
//                    {
//                        printf("  ");
//                    }
//                   
//                }
//                printf("\n");
//            }
//        }
//    }
// 
//	return 0;
//}

//BC68 - X形图案
//int main()
//{
//    int a = 0;
//    while (scanf("%d", &a) != EOF) { 
//        int i = 0;
//   
//        for (i = 0; i < a; i++)
//        {
//            int j = 0;
//            for (j = 1; j <= a; j++)
//            {
//                if (j == (a - i) || j == (i + 1))
//                {
//                    printf("*");
//                }
//                else
//                {
//                    printf(" ");
//                }
//            }
//            printf("\n");
//        }
//    }
//    return 0;
//}

//【一维数组】BC92 - 逆序输出
//int main()
//{
//	int arr[10] = { 0 };
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	int j = 0;
//	for (j = 9; j >= 0; j--) 
//	{
//		printf("%d ", arr[j]);
//	}
//
//	return 0;
//}

//【一维数组】输入10个整数，求平均值
//int main()
//{
//	int arr[10] = {0};
//	int i = 0;
//	int sum = 0;
//	for (i = 0; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//		sum += arr[i];
//	}
//	float sz = sizeof(arr) / sizeof(arr[0]);
//	printf("品均值为%f", sum/sz);
//	return 0;
//}

//【一维数组】交换数组
//int main()
//{
//	int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int arr2[10] = { 11,12,13,14,15,16,17,18,19,20};
//	int change = 0;
//	int i = 0;
//	printf("交换前:\n");
//
//	printf("arr1:");
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr1[i]);
//	}
//
//	printf("\n");
//	printf("arr2:");
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//
//	for (i = 0; i < 10; i++)
//	{
//		change = arr1[i];
//		arr1[i] = arr2[i];
//		arr2[i] = change;
//	}
//	printf("\n");
//
//	printf("交换后:\n");
//
//	printf("arr1:");
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr1[i]);
//	}
//
//	printf("\n");
//	printf("arr2:");
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//	return 0;
//}

//打印1000年到2000年之间的闰年
//int main()
//{
//	int i = 0;
//	for (i = 1000; i <= 2000; i++)
//	{
//		if (i % 4 == 0 && i % 100 != 0)
//		{
//			printf("%d ", i);
//		}
//		else if (i % 400 == 0) 
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}

//最大公约数
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d%d", &a, &b);
	if (a > b)
		c = b;
	else
		c = a;
	int i = 0;
	for (i = c; i > 0; i--)
	{
		if (a % i == 0 && b % i == 0)
		{
			printf("最大公约数%d", i);
			break;
		}
	}
	return 0;
}
